package main

import (
	"fmt"
	"go_stu/src/demo3/conf"
	"log"
	"os"

	"github.com/spf13/viper"
)

func main() {
	wd, err := os.Getwd()
	if err != nil {
		panic(err)
	}
	wd = wd + "/../conf"
	fmt.Println("11111", wd)
	c := &conf.AppConfig{}
	v := viper.New()
	v.SetConfigName("app")  //这里就是上面我们配置的文件名称，不需要带后缀名
	v.AddConfigPath(wd)     //文件所在的目录路径
	v.SetConfigType("yaml") //这里是文件格式类型
	err = v.ReadInConfig()
	if err != nil {
		log.Fatal("读取配置文件失败：", err)
		return
	}
	configs := v.AllSettings()
	for k, val := range configs {
		v.SetDefault(k, val)
	}
	err = v.Unmarshal(c) //反序列化至结构体
	fmt.Println("2222222222", c)
	if err != nil {
		log.Fatal("读取配置错误：", err)
	}
}
